package learn.stream;

import java.util.Random;
import java.util.stream.Stream;

/**
 * Created By  醉美柳舞之众星捧月
 *
 * @author song
 * @date 2018/12/27 15:04
 */
public class StreamDemo3 {
    public static void main(String[] args) {
        String str = "my name is 007";

        /** 把每个单词的长度调用出来 **/
        Stream.of(str.split(" ")).filter(s -> s.length() > 2).map(s -> s.length()).forEach(System.out::println);

        /** flatMap A-B属性(是个集合),最终得到所有的A元素里面的所有B属性集合 **/
        Stream.of(str.split(" ")).flatMap(s -> s.chars().boxed());
        /** intStream/longStream 并不是Stream的子类,所以要进行装箱 boxed **/
        Stream.of(str.split(" ")).flatMap(s -> s.chars().boxed()).forEach(i -> System.out.println((char) i.intValue()));

        /** peek 用户debug.是个中间操作,forEach是终止操作 **/
        Stream.of(str.split(" ")).peek(System.out::println);

        /** limit 使用，主要用于无限流 **/
        new Random().ints().forEach(System.out::println);
        new Random().ints().filter(i -> i > 100 && i < 1000).limit(10).forEach(System.out::println);
    }
}
